// 文件路径: com.huaxin.device.service.DeviceAlarmConfigService.java
package com.huaxin.device.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.huaxin.device.dto.ResponseResult;
import com.huaxin.device.dto.request.DeviceAlarmConfigCreateReqDTO;
import com.huaxin.device.dto.request.DeviceAlarmConfigPageListReqDTO;
import com.huaxin.device.dto.request.DeviceAlarmConfigUpdateReqDTO;
import com.huaxin.device.models.DeviceAlarmConfig;

import java.util.List;

public interface DeviceAlarmConfigService extends IService<DeviceAlarmConfig> {

    /**
     * 创建设备报警配置
     */
    ResponseResult<DeviceAlarmConfig> create(DeviceAlarmConfigCreateReqDTO in);

    /**
     * 根据ID查询设备报警配置
     */
    DeviceAlarmConfig getByConfigId(String id);

    /**
     * 更新设备报警配置
     */
    ResponseResult<String> update(DeviceAlarmConfigUpdateReqDTO in);

    /**
     * 删除设备报警配置
     */
    ResponseResult<String> delete(String id);

    /**
     * 启用设备报警配置
     */
    ResponseResult<String> enable(String id);

    /**
     * 禁用设备报警配置
     */
    ResponseResult<String> disable(String id);

    /**
     * 分页查询设备报警配置
     */
    ResponseResult<IPage<DeviceAlarmConfig>> pageQuery(DeviceAlarmConfigPageListReqDTO in);

    /**
     * 获取所有启用的报警配置
     */
    List<DeviceAlarmConfig> getAllEnabled();

    /**
     * 根据设备ID查询报警配置
     */
    DeviceAlarmConfig getByDeviceId(String deviceId);

    /**
     * 根据报警模板ID查询设备ID列表
     */
    List<String> getDeviceIdsByTemplate(String templateId);
}